Unlike some other error correction codes, with low-density parity-check (LDPC) codes the computational complexity is on the encoding side as opposed to the decoding side. Some subsets of the LDPC codes, such as quasi-cyclic LDPC (QC-LDPC) codes, reduce the computational complexity and/or storage requirements on the encoder side, but still impose a relatively high cost at the encoder. It would be desirable to develop encoding techniques (applicable to QC-LDPC codes as well as more general LDPC codes (i.e., general LDPC codes can be seen as a special QC-LDPC codes with circulant size of 1) which (further) reduce computational complexity and/or storage requirements in an encoder.